package com.heima.pojo.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.math.BigInteger;
import java.sql.Timestamp;
import java.time.LocalDateTime;

/**
 * 订单实体类
 * 对应数据库表: liked.tb_order
 */
@Data
public class Order {

    //定义订单状态常量
    public static final Integer ORDER_STATUS_CREATE = 0;//创建
    public static final Integer ORDER_STATUS_PAY_SUCCESS = 1;//支付成功
    public static final Integer ORDER_STATUS_SHIP_SUCCESS = 2;//出货成功
    public static final Integer ORDER_STATUS_SHIP_FAIL = 3;//出货失败
    public static final Integer ORDER_STATUS_INVALID = 4;//失效

    //支付状态，0-未支付;1-支付完成;2-退款中;3-退款完成',
    public static final Integer PAY_STATUS_WAIT = 0;//未支付
    public static final Integer PAY_STATUS_SUCCESS = 1;//支付完成
    public static final Integer PAY_STATUS_REFUNDING = 2;///退款中
    public static final Integer PAY_STATUS_REFUND_SUCCESS = 3;//退款完成
    /**
     * 主键ID
     */
    private BigInteger id;
    
    /**
     * 订单编号
     */
    private String orderNo;
    
    /**
     * 第三方平台单号
     */
    private String thirdNo;
    
    /**
     * 机器编号
     */
    private String innerCode;
    
    /**
     * SKU ID
     */
    private BigInteger skuId;
    
    /**
     * 商品名称
     */
    private String skuName;
    
    /**
     * 商品类别ID
     */
    private Integer classId;
    
    /**
     * 订单状态:0-创建;1-支付完成;2-出货成功;3-出货失败;4-失效
     */
    private Integer status;
    
    /**
     * 支付金额
     */
    private BigDecimal amount ;
    
    /**
     * 商品金额
     */
    private Integer price = 0;
    
    /**
     * 支付类型，1支付宝 2微信
     */
    private String payType;
    
    /**
     * 支付状态，0-未支付;1-支付完成;2-退款中;3-退款完成
     */
    private Integer payStatus = 0;
    
    /**
     * 合作商账单金额
     */
    private Integer bill = 0;
    
    /**
     * 点位地址
     */
    private String addr;
    
    /**
     * 所属区域ID
     */
    private BigInteger regionId;
    
    /**
     * 区域名称
     */
    private String regionName;
    
    /**
     * 所属商圈ID
     */
    private Integer businessId;
    
    /**
     * 商圈名称
     */
    private String businessName;
    
    /**
     * 合作商ID
     */
    private Integer ownerId;
    
    /**
     * 微信用户OpenID
     */
    private String openId;
    
    /**
     * 点位ID
     */
    private BigInteger nodeId;
    
    /**
     * 点位名称
     */
    private String nodeName;
    
    /**
     * 取消原因
     */
    private String cancelDesc = "";
    
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;
    
    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
}